import request from './axios.js'

/**
 * 获取商品列表接口
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} params.category - 商品分类
 * @param {string} params.search - 搜索关键词
 * @returns {Promise}
 */
export const getProducts = (params) => {
  return request({
    url: '/api/products/',
    method: 'GET',
    params
  })
}

/**
 * 获取商品详情接口
 * @param {number} id - 商品ID
 * @returns {Promise}
 */
export const getProductDetail = (id) => {
  return request({
    url: `/api/products/${id}/`,
    method: 'GET'
  })
}

/**
 * 发布商品接口
 * @param {Object|FormData} data - 商品信息或FormData对象
 * @returns {Promise}
 */
export const publishProduct = (data) => {
  const config = {
    url: '/api/products/',
    method: 'POST',
    data
  }
  
  // 如果是FormData对象，设置正确的Content-Type
  if (data instanceof FormData) {
    config.headers = {
      'Content-Type': 'multipart/form-data'
    }
  }
  
  return request(config)
}

/**
 * 获取用户发布的商品接口
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
// 获取用户发布的商品
export const getUserProducts = (params) => {
  console.log('调用获取用户发布商品API，URL:', '/api/products/user/products/')
  return request({
    url: '/api/products/user/products/',
    method: 'GET',
    params
  })
}